package com.tfjybj.itoo.exam.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import javax.persistence.Column;
import java.io.Serializable;
import java.util.Date;

/**
 * StudentModel
 * 学生信息表
 *
 * @author 杨江涛
 * @version 2.0.0
 * @since 2.0.0 2018-11-15 10:35:56
 */
@ApiModel(value = "StudentModel:学生信息表")
@Data
@NoArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
public class StudentModel implements Serializable {

    //region 模板逆向生产来自StudentEntity的属性
    /**
     * id
     */
    @ApiModelProperty(value = "student主键")
    @Column(name = "id")
    private String id;
    /**
     * 姓名
     */
    @ApiModelProperty(value = "姓名", required = true)
    private String name;

    /**
     * 学号
     */
    @ApiModelProperty(value = "学号", required = true)
    private String code;

    /**
     * 行政班id
     */
    @ApiModelProperty(value = "行政班id")
    private String classesId;

    /**
     * 专业id
     */
    @ApiModelProperty(value = "专业id")
    private String professionId;

    /**
     * 学院id
     */
    @ApiModelProperty(value = "学院id")
    private String academyId;

    /**
     * 户口所在地
     */
    @ApiModelProperty(value = "户口所在地")
    private String accountAddress;

    /**
     * 邮箱
     */
    @ApiModelProperty(value = "邮箱")
    private String email;

    /**
     * 入学时间
     */
    @JsonFormat(
            pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8"
    )
    @ApiModelProperty(value = "入学时间")
    private Date entranceDate;

    /**
     * 身份证号
     */
    @ApiModelProperty(value = "身份证号")
    private String identityCardId;

    /**
     * 名族
     */
    @ApiModelProperty(value = "名族")
    private String nation;

    /**
     * 籍贯
     */
    @ApiModelProperty(value = "籍贯")
    private String nativePlace;

    /**
     * 照片
     */
    @ApiModelProperty(value = "照片")
    private String pictrue;

    /**
     * 政治面貌
     */
    @ApiModelProperty(value = "政治面貌")
    private String politicalStatus;

    /**
     * 性别
     */
    @ApiModelProperty(value = "性别")
    private String sex;

    /**
     * 学生状态（休学、退学）
     */
    @ApiModelProperty(value = "学生状态（休学、退学）")
    private String status;

    /**
     * 电话号码
     */
    @ApiModelProperty(value = "电话号码")
    private String telNum;

    /**
     * 毕业院校
     */
    @ApiModelProperty(value = "毕业院校")
    private String graduatedSchool;

    /**
     * 是否可以毕业(0/1 否/是)
     */
    @ApiModelProperty(value = "是否可以毕业(0/1 否/是)", example = "0")
    private Integer isGraduate;

    /**
     * 无法毕业理由
     */
    @ApiModelProperty(value = "无法毕业理由")
    private String noGraduateReason;

    /**
     * 生源地
     */
    @ApiModelProperty(value = "生源地")
    private String originalPlace;

    /**
     * 曾用名
     */
    @ApiModelProperty(value = "曾用名")
    private String usedName;

    /**
     * 是否报到（0/1 否/是）
     */
    @ApiModelProperty(value = "是否报到（0/1 否/是）", example = "0")
    private Integer isRegistry;

    /**
     * 缴费号
     */
    @ApiModelProperty(value = "缴费号")
    private String payNumber;

    /**
     * 宿舍id
     */
    @ApiModelProperty(value = "宿舍id")
    private String roomId;

    /**
     * 年级id（从字典表获取年级信息）
     */
    @ApiModelProperty(value = "年级id（从字典表获取年级信息）")
    private String gradeId;

    /**
     * 微信openid
     */
    @ApiModelProperty(value = "微信openid")
    private String openId;

    //endregion

    /* *****************************以下是非模板生成的内容************************************ */
    /**
     * 行政班名称
     */
    @ApiModelProperty(value = "行政班名称")
    private String classesName;
    /**
     * 专业名字
     */
    @ApiModelProperty(value = "专业名字")
    private String professionName;
    /**
     * 学院名称
     */
    @ApiModelProperty(value = "学院名称")
    private String academyName;
    /**
     * 年级
     */
    @ApiModelProperty(value = "年级")
    private String grade;


}
